package pe.gob.servir.apps.censodirectivo.ejb.dao;

import java.util.List;

import javax.ejb.Local;

import pe.gob.servir.apps.censodirectivo.common.dao.BaseDAO;
import pe.gob.servir.apps.censodirectivo.excepcion.DAOExcepcion;
import pe.gob.servir.apps.censodirectivo.model.bean.MensajeRespuesta;
import pe.gob.servir.apps.censodirectivo.model.bean.OpcionUsuario;
import pe.gob.servir.apps.censodirectivo.model.bean.Usuario;
import pe.gob.servir.apps.censodirectivo.persistence.entity.TblUsuario;

@Local
public interface UsuarioDAOLocal extends BaseDAO<TblUsuario> {

	void actualizarClave(String usuario, String nuevaClave) throws DAOExcepcion;

	List<Usuario> validarUsuario(String usuario) throws DAOExcepcion;

	List<OpcionUsuario> listaOpcionesUsuario(String usuario) throws DAOExcepcion;

	List<Usuario> filtrarListaUsuarios(String dni, String usuario, String apellidoPaterno,
			String apellidoMaterno, String nombres, String entidad,
			String perfil, String estado) throws DAOExcepcion;

	MensajeRespuesta insertarUsuario( long usuarioId, String usuario, long personaId, long perfilId,
			String usuarioCreador, String estadoRegistro, String clave, String email)
			throws DAOExcepcion;

	Usuario obtenerUsuarioPorId(long usuarioId) throws DAOExcepcion;
	
	Usuario obtenerUsuarioPorEmail(String email) throws DAOExcepcion;
	
	Usuario obtenerUsuarioPorLogin(String sUsuario) throws DAOExcepcion;
	
	Usuario obtenerUsuarioPorPersonaId(long personaId) throws DAOExcepcion;
	
	Usuario obtenerUsuarioPorDocumento(String nroDocumento) throws DAOExcepcion;
	
	MensajeRespuesta eliminarUsuario(long usuarioId, String usuarioModificador)  throws DAOExcepcion;
}
